Scalable test platform

ABSTRACT

A method, computer program product, and computing system for, upon the occurrence of a computer-related event, comparing code utilized by one or more subsystems included within a scalable test platform to code available from a remote location. If the code available from the remote location is newer than the code utilized by one or more subsystems, the code available from the remote location is obtained, thus defining newer code. The code utilized by one or more subsystems is updated with the newer code.

TECHNICAL FIELD

This disclosure relates to automated test equipment and, moreparticularly, to scalable automated test equipment.

BACKGROUND

Automated test equipment systems may be used to test various electroniccomponents, which are often referred to as devices under test. Suchsystems may automate the testing of such components, wherein a componentmay be subjected to a battery of different tests in some form of logicalfashion. Additionally, such systems may provide further levels ofautomation, wherein the components being tested are automaticallyswapped out (upon completion of a testing procedure) and replaced with acomponent that is yet to be tested. Unfortunately, such automated testequipment systems are often rigid in nature and proprietary in theirdesign, resulting in systems that are not easily adaptable/scalable.

SUMMARY OF DISCLOSURE

In one implementation, a computer-implemented method includes, upon theoccurrence of a computer-related event, comparing code utilized by oneor more subsystems included within a scalable test platform to codeavailable from a remote location. If the code available from the remotelocation is newer than the code utilized by one or more subsystems, thecode available from the remote location is obtained, thus defining newercode. The code utilized by one or more subsystems is updated with thenewer code.

One or more of the following features may be included. Thecomputer-related event may include the occurrence of a bootingprocedure. The computer-related event may include the occurrence of anupdate procedure. The newer code may include a firmware update for theone or more subsystems. The newer code may include a driver update forthe one or more subsystems.

Obtaining the code available from the remote location may includeobtaining the code from a remote website via the internet. The scalabletest platform may include a PCIe-based event fabric; one or more CPUsubsystems coupled to the PCIe-based event fabric and configured toexecute an automated test process; and one or more instrument subsystemscoupled to the PCIe-based event fabric and configured to interface oneor more devices under test.

In another implementation, a computer program product resides on acomputer readable medium that has a plurality of instructions stored onit. When executed by a processor, the instructions cause the processorto perform operations including, upon the occurrence of acomputer-related event, comparing code utilized by one or moresubsystems included within a scalable test platform to code availablefrom a remote location. If the code available from the remote locationis newer than the code utilized by one or more subsystems, the codeavailable from the remote location is obtained, thus defining newercode. The code utilized by one or more subsystems is updated with thenewer code.

One or more of the following features may be included. Thecomputer-related event may include the occurrence of a bootingprocedure. The computer-related event may include the occurrence of anupdate procedure. The newer code may include a firmware update for theone or more subsystems. The newer code may include a driver update forthe one or more subsystems.

Obtaining the code available from the remote location may includeobtaining the code from a remote website via the internet. The scalabletest platform may include a PCIe-based event fabric; one or more CPUsubsystems coupled to the PCIe-based event fabric and configured toexecute an automated test process; and one or more instrument subsystemscoupled to the PCIe-based event fabric and configured to interface oneor more devices under test.

In another implementation, a computing system includes at least oneprocessor and at least one memory architecture coupled with the at leastone processor, wherein the computing system is configured to performoperations including, upon the occurrence of a computer-related event,comparing code utilized by one or more subsystems included within ascalable test platform to code available from a remote location. If thecode available from the remote location is newer than the code utilizedby one or more subsystems, the code available from the remote locationis obtained, thus defining newer code. The code utilized by one or moresubsystems is updated with the newer code.

One or more of the following features may be included. Thecomputer-related event may include the occurrence of a bootingprocedure. The computer-related event may include the occurrence of anupdate procedure. The newer code may include a firmware update for theone or more subsystems. The newer code may include a driver update forthe one or more subsystems.

Obtaining the code available from the remote location may includeobtaining the code from a remote website via the internet. The scalabletest platform may include a PCIe-based event fabric; one or more CPUsubsystems coupled to the PCIe-based event fabric and configured toexecute an automated test process; and one or more instrument subsystemscoupled to the PCIe-based event fabric and configured to interface oneor more devices under test.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features andadvantages will become apparent from the description, the drawings, andthe claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of an automated test platform;

FIG. 2 is a diagrammatic view of an instrument card included within theautomated test platform of FIG. 1;

FIG. 3 is a diagrammatic view of a PCIe-based event fabric includedwithin the automated test platform of FIG. 1;

FIG. 4 is a diagrammatic view of a DSP card included within theautomated test platform of FIG. 1; and

FIG. 5 is a flowchart of an automated test process 20 executed by theautomated test platform of FIG. 1.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS System Overview

Referring to FIG. 1, there is shown automated test platform 10. Examplesof automated test platform 10 may include, but are not limited to,systems that automate the verification and validation of devices undertest (DUTs). As discussed above, automated test equipment systems (e.g.automated test platform 10) may be used to test various electroniccomponents in an automated fashion. Typically, the devices under testare subjected to a battery of different tests, wherein the testingprocedures are automated in a logical fashion. For example, during thetesting of a power supply, the power supply may be subjected to varyingvoltage levels and varying voltage frequencies. Further, during thetesting of a noise canceling circuit, such a circuit may be subjected tovarying levels and frequencies of noise to confirm the satisfactoryperformance of the same.

Automated test platform 10 may include one or more central processingunits (e.g. CPU subsystem 12), one or more instrument subsystems (e.g.instrument card 14), and one or more digital signal processingsubsystems (e.g. DSP card 16), all of which may be coupled together viaa PCIe-based event fabric 18.

Examples of CPU subsystem 12 may include but are not limited to apersonal computer, a server computer, a series of server computers, amini computer or a single-board computer. CPU subsystem 12 may executeone or more operating systems, examples of which may include but are notlimited to: Microsoft Windows XP Server™; Novell Netware™; RedhatLinux™, Unix, or a custom operating system, for example. While in thisparticular example, automated test platform 10 is shown to include threeCPU subsystems, this is for illustrative purposes only and is notintended to be a limitation of this disclosure, as other configurationsare possible. For example, the number of CPU subsystems utilized withinautomated test platform 10 may be increased or decreased depending uponthe anticipated loading of automated test platform 10.

CPU subsystem 12 may execute one or more automated test programs (e.g.automated test process 20), wherein automated test process 20 may beconfigured to automate the testing of various devices under test.Through the use of automated test process 20, an administrator (notshown) of automated test platform 10 may define and execute testingprocedures/routines for the various devices under test.

The instruction sets and subroutines of automated test process 20, whichmay be stored on storage device 22 included within CPU subsystem 12, maybe executed by one or more processors (not shown) and one or more memoryarchitectures (not shown) included within CPU subsystem 12. Storagedevice 22 may include but is not limited to: a hard disk drive; a tapedrive; an optical drive; a RAID device; a random access memory (RAM); aread-only memory (ROM); and all forms of flash memory storage devices.

CPU subsystem 12 may be connected to one or more networks (e.g., network24), examples of which may include but are not limited to: a local areanetwork, a wide area network, an intranet or the internet, for example.Accordingly, CPU subsystem 12 may be administered and/or controlled vianetwork 24. Accordingly, an administrator (not shown) may use a remotecomputer (not shown) coupled to network 24 to define and/or administervarious testing procedures and/or routines via automated test process20. Additionally and as we discussed below in greater detail, CPUsubsystem 12 may use network 24 to obtain updated versions of driversand/or firmware to maintain current automated test platform 10.

Referring also to FIG. 2, there is shown a more detailed view ofinstrument card 14. While in this particular example, this detailed viewconcerns instrument card 14, this is for illustrative purposes only andis not intended to be a limitation of this disclosure, as FIG. 2 isintended to represent a generic description of an instrument card.

As discussed above, automated test platform 10 may be used to testvarious devices under test. For example, assume for illustrativepurposes that instrument card 14 is being used to test devices undertest 50, 52, 54, 56. Instrument card 14 may include instrument hardware58. Specifically, different instrument cards may be designed to performdifferent functions. For example, certain instrument cards may providevarying levels of voltage, other instrument cards may provide sweepingnoise signals, wherein other instrument cards may provide digital clocksignals. Accordingly, depending upon the type of functionality that aspecific instrument card is designed to perform, the instrument hardware(e.g. instrument hardware 58) included within the specific instrumentcard may vary.

Further, the manner in which instrument hardware 58 is coupled to (inthis example) devices under test 50, 52, 54, 56 may vary depending uponthe functionality of instrument card 14. For example, if instrument card14 is designed to read a particular data register within a device undertest, a parallel or serial data cable may be used to couple instrumenthardware 58 with the device under test. In the event that instrumentcard 14 is being used to monitor e.g. voltage levels at a particularterminal within a device under test, a voltage probe may be used tocouple instrument hardware 58 to the device under test.

Instrument card 14 may include communication interface system 60.Communication interface system 60 may be configured to couple instrumenthardware 58 (and instrument card 14 generally) to PCIe-based eventfabric 18. Communication interface system 60 may include variouscomponents that allow for the communication of instrument card 14 viaPCIe-based event fabric 18.

For example, communication interface system 60 may include PCIeinterface 62, which may allow for instrument card 14 to communicate viaPCIe-based event fabric 18 using the PCIe communication standards. As isknown in the art, PCIe (Peripheral Component Interconnect Express) is ahigh-speed serial computer expansion bus standard designed to replacethe older bus systems (e.g., PCI, PCI-X, and AGP). Through the use ofPCIe, higher maximum system bus throughput may be achieved. Otherbenefit may include lower I/O pin count, a smaller physical footprint,better performance-scaling for bus devices, a more detailed errordetection and reporting mechanism, and native plug-n-play functionality.

Communication interface system 60 may further include loader interface64 (for updating the various components of instrument card 14; to bediscussed below in greater detail) and event interface 66 (fororchestrating testing procedures; to be discussed alone greater detail).Additionally and as we discussed below in greater detail, communicationinterface system 60 may include one or more direct memory access (DMA)engines (e.g. DMA engine 68) that may be configured to allow instrumentcard 14 to read data from and/or write data to remote memory systems(such as memory systems utilized by e.g. CPU subsystem 12 or othersubsystems). PCIe interface 62, loader interface 64 and/or eventinterface 66 may be configured to communicate with PCIe-based eventfabric 18.

Referring also to FIG. 3, there is shown a more detailed view ofPCIe-based event fabric 18. PCIe-based event fabric 18 may include oneor more PCIe switches (e.g. PCIe switches 100, 102, 104) that may beconfigured to interface e.g. CPU subsystem 12 with instrument card14/DSP card 16. Examples of PCIe switches 100, 102, 104 may include butare not limited to switches available from PLX Technology (e.g.,PEX8664, PEX8764, PEX8696 and PEX8796) and switches available from IDT(e.g., 89H64H16G2, 89H64H16G3, 89H48H12G2 and 89H48H12G3). For example,a first PCIe switch (e.g. PCIe switch 100) may be coupled to CPUsubsystem 12. PCIe switch 100 may be coupled to PCIe switches 102, 104,which may be coupled to the expansion cards 106 included withinautomated test platform 10. Examples of expansion cards 106 may includebut are not limited to instrument card 14 and DSP card 16.

Additionally, PCIe-based event fabric 18 may include interface 108 forcommunicating with loader interface 64 and event interface 66 (to bediscussed below in greater detail). Further, PCIe-based event fabric 18may include PCIe backplane 110, which may include a plurality of slots(not shown) for electrically coupling devices to PCIe backplane 110 viacard edge type connections. Further, PCIe backplane 110 may include aplurality of socket type connectors (not shown) for electricallycoupling devices to PCIe backplane 110 via cable type connections.

Since PCIe-based event fabric 18 uses the PCIe communication standards,enhanced levels of data throughput may be realized by automated testplatform 10. Specifically and as is known in the art, within aPCIe-based system (such as automated test platform 10), data may betransferred via paired point-to-point serial links (called communicationlanes), thus allowing for data to be simultaneously transferred in bothdirections between PCI-e devices. Additionally, such a configuration mayalso allow for multiple devices within the PCIe-based system tosimultaneously communicate with each other. Further, PCIeslots/connectors may contain 1-32 communication lanes (based upon powersof two). Accordingly, a specific PCIe-based slot/connector may beassigned 1, 2, 4, 8, 16 or 32 lanes, thus allowing the designer toadjust the bandwidth provided to a specific slot/connector by varyingthe number of communication lanes assigned to the same.

Referring also to FIG. 4, there is shown a more detailed view of DSPcard 16. DSP card 16 may include communication interface system 150.Communication interface system 150 may be configured to couple DSP card16 to PCIe-based event fabric 18. Communication interface system 150 mayinclude various components that allow for the communication of DSP card16 via PCIe-based event fabric 18.

For example, communication interface system 150 may include PCIeinterface 152, which may allow for DSP card 16 to communicate viaPCIe-based event fabric 18 using the PCIe communication standards.Communication interface system 60 may further include loader interface154 (for updating the various components of DSP card 16; to be discussedbelow in greater detail) and event interface 156 (for orchestratingtesting procedures; to be discussed alone greater detail). Additionallyand as will be discussed below in greater detail, communicationinterface system 150 may include one or more direct memory access (DMA)engines (e.g. DMA engine 158) that may be configured to allow DSP card16 to read data from and/or write data to remote memory systems (such asmemory systems utilized by e.g. CPU subsystem 12 or other subsystems).PCIe interface 152, loader interface 154 and/or event interface 156 maybe configured to communicate with PCIe-based event fabric 18.

Operation:

As discussed above, automated test platform 10 may be used to testvarious electronic components. CPU subsystem 12 may execute one or moreautomated test programs (e.g. automated test process 20), whereinautomated test process 20 may be configured to automate the testing ofe.g., devices under test 50, 52, 54, 56. Through the use of automatedtest process 20, an administrator (not shown) of automated test platform10 may define testing procedures/routines for devices under test 50, 52,54, 56. Once automated test process 20 defines these testingprocedures/routines, testing instructions (e.g., instructions 112) maybe defined and stored locally on a memory system (not shown) accessibleby CPU subsystem 12.

Instructions 112 may instruct the subsystems (e.g. instrument card14/DSP card 16) to perform various operations. For example, instrumentcard 14 may obtain instructions 112 via e.g., DMA engine 68. Asdiscussed above, DMA engine 68 may be configured to allow instrumentcard 14 to read data from and/or write data to remote memory systems(such as memory systems utilized by e.g. CPU subsystem 12 or otherinstrument cards). Accordingly, CPU subsystem 12 may notify the varioussubsystems (e.g., instrument card 14/DSP card 16) that instructions 112are available and e.g., instrument card 14 may obtain instructions 112from the memory system accessible by CPU subsystem 12 via DMA engine 68.

Once instructions 112 are obtained by (in this example) instrument card14, the testing procedure may begin. For example, instrument card 14 mayprovide one or more variable input signals to device under test 50 whilemonitoring one or more output signals provided by device under test 50.The output signals provided by device under test 50 (e.g., captured testdata 70) may be stored within a memory subsystem (not shown) includedwithin instrument card 14. Depending upon the manner in which automatedtest process 20 is configured by the administrator (not shown) ofautomated test platform 10, these testing procedures may be repeated (toproduce multiple identical test runs) or varied (to produce differingtest runs). These various testing procedures may be sequenced byautomated test process 20 via the event interface (e.g., eventinterfaces 66, 156). Specifically, automated test process 20 may providetiming and/or sequencing signals to the various components of automatedtest platform 10 through event interfaces 66, 156 in conjunction withinterface 108 included within PCIe-based event fabric 18.

Once the automated test process 20 has been executed and the collectionof captured test data 70 is complete, instrument card 14 may providecaptured test data 70 to CPU subsystem 12 for processing. Instrumentcard 14 may accomplish this transfer of captured test data 70 to CPUsubsystem 12 via DMA engine 68 by writing captured test data 70 directlyto the memory system (not shown) accessible by CPU subsystem 12.

In the event that captured test data 70 is of considerable size (or theloading of CPU subsystem 12 is concerning), instrument card 14 mayprovide captured test data 70 to DSP card 16 for processing. Instrumentcard 14 may accomplish this transfer of captured test data 70 to DSPcard 16 via DMA engine 68 by writing captured test data 70 directly to amemory system (not shown) accessible by DSP card 16. Alternatively, DSPcard 16 may obtain captured test data 70 via DMA engine 158 by readingcaptured test data 70 directly from the memory system (not shown)accessible by instrument card 14.

DSP card 16 may then process captured test data 70 to generate resultset 160 which may be stored within the memory subsystem (not shown)accessible by DSP card 16. Once this processing is complete, DSP card 16may provide result set 160 to CPU subsystem 12. DSP card 16 mayaccomplish this transfer of result set 160 to CPU subsystem 12 via DMAengine 158 by writing result set 160 directly to the memory system (notshown) accessible by CPU subsystem 12.

Updates:

Referring also to FIG. 5, automated test platform 10 generally (andautomated test process 20 specifically) may be configured to perform anautomated configuration/update/maintenance process to ensure that thevarious components of automated test platform 10 are up-to-date. Forexample, upon the occurrence of a computer-related event, automated testprocess 20 may compare 200 code utilized by one or more subsystems(e.g., code 72 for instrument card 14 and/or code 162 for DSP card 16)included within automated test platform 10 to code (e.g., code 114)available from a remote location (e.g., a remote website located onnetwork 24).

Concerning the above-described computer-related event, examples mayinclude but are not limited to the occurrence of a booting procedure andthe occurrence of an update procedure. For example, automated testprocess 20 may perform maintenance each time that e.g., CPU subsystem 12is booted. Alternatively/additionally, automated test process 20 mayperform maintenance each time that an update procedure is initiated byan administrator (not shown) of automated test platform 10.

Concerning the code (e.g., code 72, 162) utilized by the one or moresubsystems and the code (e.g., code 114) available from the remotelocation (e.g., a remote website located on network 24), example of suchcode may include but are not limited to firmware code (e.g., forupdating the BIOS of a subsystem) and/or driver code (e.g., for updatingthe drivers used to access a subsystem).

If the code (e.g., code 114) available from the remote location (e.g., aremote website located on network 24) is newer than the code (e.g., code72, 162) utilized by the one or more subsystems, automated test process10 may obtain 202 the code available from the remote location (e.g., aremote website located on network 24), thus defining newer code.Examples of such newer code may include but are not limited to afirmware update and a driver update for one or more of the subsystems ofautomated test platform 10.

Once obtained 202, automated test process 20 may update 204 the codeutilized by the subsystems (e.g., code 72 for instrument card 14 and/orcode 162 for DSP card 16) with the newer code via loader interface 64,154. For example, automated test process 20 may utilize loader interface64, 154 to provide (via PCIe-based event fabric 18) the new code toupdate the firmware and/or the drivers of the various subsystems ofautomated test platform 10.

General:

As will be appreciated by one skilled in the art, the present disclosuremay be embodied as a method, a system, or a computer program product.Accordingly, the present disclosure may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present disclosure may take the form of a computer program producton a computer-usable storage medium having computer-usable program codeembodied in the medium.

Any suitable computer usable or computer readable medium may beutilized. The computer-usable or computer-readable medium may be, forexample but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, device,or propagation medium. More specific examples (a non-exhaustive list) ofthe computer-readable medium may include the following: an electricalconnection having one or more wires, a portable computer diskette, ahard disk, a random access memory (RAM), a read-only memory (ROM), anerasable programmable read-only memory (EPROM or Flash memory), anoptical fiber, a portable compact disc read-only memory (CD-ROM), anoptical storage device, a transmission media such as those supportingthe Internet or an intranet, or a magnetic storage device. Thecomputer-usable or computer-readable medium may also be paper or anothersuitable medium upon which the program is printed, as the program can beelectronically captured, via, for instance, optical scanning of thepaper or other medium, then compiled, interpreted, or otherwiseprocessed in a suitable manner, if necessary, and then stored in acomputer memory. In the context of this document, a computer-usable orcomputer-readable medium may be any medium that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, or device.The computer-usable medium may include a propagated data signal with thecomputer-usable program code embodied therewith, either in baseband oras part of a carrier wave. The computer usable program code may betransmitted using any appropriate medium, including but not limited tothe Internet, wireline, optical fiber cable, RF, etc.

Computer program code for carrying out operations of the presentdisclosure may be written in an object oriented programming languagesuch as Java, Smalltalk, C++ or the like. However, the computer programcode for carrying out operations of the present disclosure may also bewritten in conventional procedural programming languages, such as the“C” programming language or similar programming languages. The programcode may execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network/a widearea network/the Internet (e.g., network 14).

The present disclosure is described with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the disclosure. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, may be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer/special purposecomputer/other programmable data processing apparatus, such that theinstructions, which execute via the processor of the computer or otherprogrammable data processing apparatus, create means for implementingthe functions/acts specified in the flowchart and/or block diagram blockor blocks.

These computer program instructions may also be stored in acomputer-readable memory that may direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

The flowcharts and block diagrams in the figures may illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present disclosure. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustrations,and combinations of blocks in the block diagrams and/or flowchartillustrations, may be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the disclosure in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the disclosure. Theembodiment was chosen and described in order to best explain theprinciples of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

A number of implementations have been described. Having thus describedthe disclosure of the present application in detail and by reference toembodiments thereof, it will be apparent that modifications andvariations are possible without departing from the scope of thedisclosure defined in the appended claims.

What is claimed is:
 1. A computer-implemented method comprising: uponthe occurrence of a computer-related event, comparing code utilized byone or more subsystems included within a scalable test platform to codeavailable from a remote location, wherein the scalable test platformincludes a PCIe-based event fabric, one or more CPU subsystems coupledto the PCIe-based event fabric and configured to execute an automatedtest process, and one or more instrument subsystems coupled to thePCIe-based event fabric and configured to interface one or more devicesunder test; if the code available from the remote location is newer thanthe code utilized by the one or more subsystems, obtaining the codeavailable from the remote location, thus defining newer code; andupdating the code utilized by the one or more subsystems with the newercode.
 2. The computer-implemented method of claim 1 wherein thecomputer-related event includes the occurrence of a booting procedure.3. The computer-implemented method of claim 1 wherein thecomputer-related event includes the occurrence of an update procedure.4. The computer-implemented method of claim 1 wherein the newer codeincludes a firmware update for the one or more subsystems.
 5. Thecomputer-implemented method of claim 1 wherein the newer code includes adriver update for the one or more subsystems.
 6. Thecomputer-implemented method of claim 1 wherein obtaining the codeavailable from the remote location includes obtaining the code from aremote website via the internet.
 7. A computer program product residingon a computer readable medium having a plurality of instructions storedthereon which, when executed by a processor, cause the processor toperform operations comprising: upon the occurrence of a computer-relatedevent, comparing code utilized by one or more subsystems included withina scalable test platform to code available from a remote location,wherein the scalable test platform includes a PCIe-based event fabric,one or more CPU subsystems coupled to the PCIe-based event fabric andconfigured to execute an automated test process, and one or moreinstrument subsystems coupled to the PCIe-based event fabric andconfigured to interface one or more devices under test; if the codeavailable from the remote location is newer than the code utilized bythe one or more subsystems, obtaining the code available from the remotelocation, thus defining newer code; and updating the code utilized bythe one or more subsystems with the newer code.
 8. The computer programproduct of claim 7 wherein the computer-related event includes theoccurrence of a booting procedure.
 9. The computer program product ofclaim 7 wherein the computer-related event includes the occurrence of anupdate procedure.
 10. The computer program product of claim 7 whereinthe newer code includes a firmware update for the one or moresubsystems.
 11. The computer program product of claim 7 wherein thenewer code includes a driver update for the one or more subsystems. 12.The computer program product of claim 7 wherein obtaining the codeavailable from the remote location includes obtaining the code from aremote website via the internet.
 13. A computing system including atleast one processor and at least one memory architecture coupled withthe at least one processor, wherein the computing system is configuredto perform operations comprising: upon the occurrence of acomputer-related event, comparing code utilized by one or moresubsystems included within a scalable test platform to code availablefrom a remote location, wherein the scalable test platform includes aPCIe-based event fabric, one or more CPU subsystems coupled to thePCIe-based event fabric and configured to execute an automated testprocess, and one or more instrument subsystems coupled to the PCIe-basedevent fabric and configured to interface one or more devices under test;if the code available from the remote location is newer than the codeutilized by the one or more subsystems, obtaining the code availablefrom the remote location, thus defining newer code; and updating thecode utilized by the one or more subsystems with the newer code.
 14. Thecomputing system of claim 13 wherein the computer-related event includesthe occurrence of a booting procedure.
 15. The computing system of claim13 wherein the computer-related event includes the occurrence of anupdate procedure.
 16. The computing system of claim 13 wherein the newercode includes a firmware update for the one or more subsystems.
 17. Thecomputing system of claim 13 wherein the newer code includes a driverupdate for the one or more subsystems.
 18. The computing system of claim13 wherein obtaining the code available from the remote locationincludes obtaining the code from a remote website via the internet.